package faction.insertionSort;

import java.util.stream.IntStream;

/**
 * 插入排序算法
 * 原理：使每段中大值后移，直到无法后移为止，这个位置就可以插入一个当前值
 */
public class insertionSort {
    public static void exec(int[] input) {
        int length = input.length;
        for(int i = 1; i <length; i++) {
            int j = i-1;
            int value = input[i];
            while (j > -1 && input[j] > value  ) {
                input[j + 1] = input[j];
                j--;
            }
            input[j + 1] = value;
        }
        IntStream intStream = IntStream.of(input);
        intStream.forEach(c -> System.out.println(c));
    }
    public static void main(String[] args) {
        int[] arr = {1,12, 18,11, 13, 5, 6};
        exec(arr);
    }
}
